/**
 * Promise的类方法 - all
 * 是一个语法糖
 */
//console.log(Object.getOwnPropertyDescriptors(Promise))
const p1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('1111')
  }, 1000)
})
const p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('2222')
  }, 2000)
})
const p3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    // resolve('3333')
    reject('p3 reject error')
  }, 3000)
})
//等所有promise均为fulfilled时，将会拿到结果res，拿到的是一个数组
// 但凡有一个Promise是reject，那么整个Promise将会是rejected
Promise.all([p1, p2, p3, 'last res'])
  .then((res) => {
    console.log(res) //[ '1111', '2222', '3333', 'last res' ]
  })
  .catch((err) => {
    console.log(err) //p3 reject error
  })
